main() {
  // 列表
  var list = [1, 2, 3, 4, 5];
  print(list);

  // 列表元素赋值
  list[0] = 100;
  print(list);

  // 列表长度
  print(list.length);

  // 列表添加元素
  list.add(6);
  print(list);

  // 列表删除元素-值删除
  list.remove(6);
  print(list);

  // 列表删除元素-索引删除
  list.removeAt(0);
  print(list);

  // 列表清空
  list.clear();
  print(list);

  // 列表是否为空
  print(list.isEmpty);

  // 列表是否不为空
  print(list.isNotEmpty);

  // 列表是否包含某个元素
  print(list.contains(100));

  // 列表是否不包含某个元素
  print(list.contains(1000));

  // 列表是否包含某个元素-自定义判断
  print(list.contains((element) => element > 100));

  // 列表是否不包含某个元素-自定义判断
  print(list.contains((element) => element < 100));

  // 列表遍历
  list.forEach((element) {
    print(element);
  });

  // 4. 列表遍历1
  print('--------列表遍历1---------');
  for (int i = 0; i < list.length; i++) {
    print(list[i]);
  }

  // 5. 列表遍历2
  print('--------列表遍历2---------');
  for (var item in list) {
    print(item);
  }

  // 6. 列表遍历3
  print('--------列表遍历3---------');
  list.forEach((item) {
    print(item);
  });

  // where 方法，筛选列表元素，返回 Iterable 类型，可通过 toList() 转换为列表
  print('--------where 方法---------');
  List newList = list.where((item) => item > 30).toList();
  print(newList);

  // map 方法，对列表元素进行映射
  print('--------map 方法---------');
  List newList2 = list.map((item) => item * 2).toList();
  print(newList2);

}